package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


//  存储 物料管理系统原始接口返回
@Data
public class MaterialsOriginalRecordVO {
    /**
     * id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 原始验收记录表ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long originalId;

    /**
     * 材料类别编码
     */
    private String materialTypeCode;

    /**
     * 材料类别名称
     */
    private String materialTypeName;

    /**
     * 材料编码
     */
    private String materialCode;

    /**
     * 材料名称
     */
    private String materialName;

    /**
     * 规格型号编码;冗余字段
     */
    private String specCode;

    /**
     * 规格型号
     */
    private String spec;

    /**
     * 计量单位编码
     */
    private String unitCode;

    /**
     * 计量单位
     */
    private String unitName;

    /**
     * 批次编号
     */
    private String batchNumber;

    /**
     * 原单毛重;单位:kg、单据上的 车+物资的总重量
     */
    private BigDecimal originalRough;

    /**
     * 原单皮重;单位:kg、单据上的 车的重量
     */
    private BigDecimal originalTare;

    /**
     * 原单数量;单位:kg、单据上的重量
     */
    private BigDecimal originalCount;

    /**
     * 实收毛重;单位:kg、磅站 称重 总重量
     */
    private BigDecimal actualRough;

    /**
     * 实收皮重;单位:kg、磅站 称重 车的重量
     */
    private BigDecimal actualTare;

    /**
     * 实收净重;单位:kg、磅站 称重 物资重量
     */
    private BigDecimal actualReal;

    /**
     * 实际重量;单位:kg、PC |    实际重量 净重-扣杂
     */
    private BigDecimal actualWeight;

    /**
     * 实收数量;单位:kg、app 为确认数量，pc为实收数量
     */
    private BigDecimal actualCount;

    /**
     * 实际偏差;扣量百分比，单位 1%
     */
    private BigDecimal discountPer;

    /**
     * 扣量;单位: kg
     */
    private BigDecimal discountCount;

    /**
     * 换算系数
     */
    private BigDecimal conversionFactor;

    /**
     * 正差
     */
    private BigDecimal justBadwaybillnumber;

    /**
     * 负差
     */
    private BigDecimal loseBad;

    /**
     * 偏差结果;1、正常 2、超正差 3、超负差
     */
    private String deviationResult;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    /**
     * 合同id
     */
    private String contractId;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 状态;0、正常 1、异常
     */
    private String status;

    /**
     * 子表对账转台
     */
    private String state;
    /**
     * 创建者id
     */
    private String creatorId;

    /**
     * 备注;限制500个字符，250个汉字
     */
    private String remark;
    @JsonSerialize(using = ToStringSerializer.class)
    private Long planRecordId;

    private String planRecordStatus;
}
